package com.example.oms.service;

import com.example.oms.dto.ReserveDto;
import com.example.oms.dto.ReserveOfflineDto;
import com.example.oms.entity.*;
import com.example.oms.vo.DiagReportsInfoVo;
import com.example.oms.vo.DoctorArrangeInfoVo;
import com.example.oms.vo.PrescriptionsInfoVo;
import com.example.oms.vo.RegistrationInfoVo;

import java.util.List;

public interface PatientService {
    List<Departments> getAllDept();

    Doctors getDoctorInfo(int id);

    List<DoctorArrangeInfoVo> getDoctorArrange(int deptId, String date);

    int getReserveNum(ReserveDto reserveDto);

    int creatRegistration(Schedule schedule,int patientId,int isReserved);

    void scheduleNumReduceOne(int scheduleId);

    int editPatientInfo(Patients patient);

    Patients getPatientById(Integer id);

    List<RegistrationInfoVo> getRegistrationInfoByPatientId(int id);

    Registrations getRegistrationByRegistrationId(int id);

    List<RegistrationInfoVo> getNotPaidRegistrationByPatientId(int id);

    List<PrescriptionsInfoVo> getNotPaidPrescriptionsByPatientId(int id);

    List<DiagReportsInfoVo> getNotPaidDiagReportsByByPatientId(int id);

    int editRegistrationsStatus(int id , String paid);

    Registrations getRegistrationById(int id);

    int changePrescriptionStatus(int id, String paid);

    int changeDiagReportStatus(int id, String paid);

    boolean patientAccountNotExist(String idNumber);

    int creatPatient(ReserveOfflineDto reserveOfflineDto,int id);

    int getPatientIdByIdNumber(ReserveOfflineDto reserveOfflineDto);

    Schedule getReserveById(int scheduleId);

    int cancelReserve(int reserveId);
}
